#include "ros/ros.h"

int main(int argc, char **argv)
{
    setlocale(LC_ALL,"");
    ros:init(argc, argv, "ergouzi",ros::init_options::AnonymousName);
    ros::NodeHandle n;
    // latch(可选)如果设置为true，会保存发布方的最后一条消息，并且新的订阅对象连接到发布方时，
    // 发布方会将这条消息发送给订阅者
    // 使用：
    // 以静态地图发布为例，方案1 ：可以使用固定频率发送地图数据，但是效率低，
    // 方案2 ：latch设置为true，并且只发送一次数据，当订阅者连接时，将地图数据发送给订阅者
    // 只发布一次
    ros::Publisher pub = n.advertise<std_msgs::String>("famg", 1000);
    std_msgs::String msg;
    ros::Rate loop_rate(1);
    int count = 0;
    ros::Duration(3).sleep();
    while(ros::ok())
    {
        count++;
        std::stringstream ss;
        ss<<"hello -----> " << count;
        msg.data = ss.str();
        if (count <= 10)
        {
            pub.publish(msg);
            ROS_INFO("%s", msg.data.c_str());
        }
        ros::spinOnce();
        ROS_INFO("loop:%f", loop_rate.expectedCycleTime().toSec());
    }
}